<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>ForkedEvaluator (POI API Documentation)</title>
<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="ForkedEvaluator (POI API Documentation)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ForkedEvaluator.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>PREV CLASS</li>
<li>NEXT CLASS</li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../index.html?org/apache/poi/ss/formula/eval/forked/ForkedEvaluator.html" target="_top">FRAMES</a></li>
<li><a href="ForkedEvaluator.html" target="_top">NO FRAMES</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>SUMMARY:&nbsp;</li>
<li>NESTED&nbsp;|&nbsp;</li>
<li>FIELD&nbsp;|&nbsp;</li>
<li>CONSTR&nbsp;|&nbsp;</li>
<li><a href="#method_summary">METHOD</a></li>
</ul>
<ul class="subNavList">
<li>DETAIL:&nbsp;</li>
<li>FIELD&nbsp;|&nbsp;</li>
<li>CONSTR&nbsp;|&nbsp;</li>
<li><a href="#method_detail">METHOD</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<p class="subTitle">org.apache.poi.ss.formula.eval.forked</p>
<h2 title="Class ForkedEvaluator" class="title">Class ForkedEvaluator</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.poi.ss.formula.eval.forked.ForkedEvaluator</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public final class <strong>ForkedEvaluator</strong>
extends java.lang.Object</pre>
<div class="block">An alternative workbook evaluator that saves memory in situations where a single workbook is
 concurrently and independently evaluated many times.  With standard formula evaluation, around
 90% of memory consumption is due to loading of the <a href="../../../../../../../org/apache/poi/hssf/usermodel/HSSFWorkbook.html" title="class in org.apache.poi.hssf.usermodel"><code>HSSFWorkbook</code></a> or <a href="../../../../../../../org/apache/poi/xssf/usermodel/XSSFWorkbook.html" title="class in org.apache.poi.xssf.usermodel"><code>XSSFWorkbook</code></a>.
 This class enables a 'master workbook' to be loaded just once and shared between many evaluation
 clients.  Each evaluation client creates its own <a href="../../../../../../../org/apache/poi/ss/formula/eval/forked/ForkedEvaluator.html" title="class in org.apache.poi.ss.formula.eval.forked"><code>ForkedEvaluator</code></a> and can set cell values
 that will be used for local evaluations (and don't disturb evaluations on other evaluators).</div>
<dl><dt><span class="strong">Author:</span></dt>
  <dd>Josh Micich</dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/poi/ss/formula/eval/forked/ForkedEvaluator.html#copyUpdatedCells(org.apache.poi.ss.usermodel.Workbook)">copyUpdatedCells</a></strong>(<a href="../../../../../../../org/apache/poi/ss/usermodel/Workbook.html" title="interface in org.apache.poi.ss.usermodel">Workbook</a>&nbsp;workbook)</code>
<div class="block">Copies the values of all updated cells (modified by calls to <a href="../../../../../../../org/apache/poi/ss/formula/eval/forked/ForkedEvaluator.html#updateCell(java.lang.String, int, int, org.apache.poi.ss.formula.eval.ValueEval)"><code>updateCell(String, int, int, ValueEval)</code></a>) to the supplied <tt>workbook</tt>.<br/>
 Typically, the supplied <tt>workbook</tt> is a writable copy of the 'master workbook',
 but at the very least it must contain sheets with the same names.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../../../org/apache/poi/ss/formula/eval/forked/ForkedEvaluator.html" title="class in org.apache.poi.ss.formula.eval.forked">ForkedEvaluator</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/poi/ss/formula/eval/forked/ForkedEvaluator.html#create(org.apache.poi.ss.usermodel.Workbook, org.apache.poi.ss.formula.IStabilityClassifier)">create</a></strong>(<a href="../../../../../../../org/apache/poi/ss/usermodel/Workbook.html" title="interface in org.apache.poi.ss.usermodel">Workbook</a>&nbsp;wb,
      <a href="../../../../../../../org/apache/poi/ss/formula/IStabilityClassifier.html" title="interface in org.apache.poi.ss.formula">IStabilityClassifier</a>&nbsp;stabilityClassifier)</code>
<div class="block"><strong>Deprecated.</strong>&nbsp;
<div class="block"><i>(Sep 2009) (reduce overloading) use <a href="../../../../../../../org/apache/poi/ss/formula/eval/forked/ForkedEvaluator.html#create(org.apache.poi.ss.usermodel.Workbook, org.apache.poi.ss.formula.IStabilityClassifier, org.apache.poi.ss.formula.udf.UDFFinder)"><code>create(Workbook, IStabilityClassifier, UDFFinder)</code></a></i></div>
</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../../../org/apache/poi/ss/formula/eval/forked/ForkedEvaluator.html" title="class in org.apache.poi.ss.formula.eval.forked">ForkedEvaluator</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/poi/ss/formula/eval/forked/ForkedEvaluator.html#create(org.apache.poi.ss.usermodel.Workbook, org.apache.poi.ss.formula.IStabilityClassifier, org.apache.poi.ss.formula.udf.UDFFinder)">create</a></strong>(<a href="../../../../../../../org/apache/poi/ss/usermodel/Workbook.html" title="interface in org.apache.poi.ss.usermodel">Workbook</a>&nbsp;wb,
      <a href="../../../../../../../org/apache/poi/ss/formula/IStabilityClassifier.html" title="interface in org.apache.poi.ss.formula">IStabilityClassifier</a>&nbsp;stabilityClassifier,
      <a href="../../../../../../../org/apache/poi/ss/formula/udf/UDFFinder.html" title="interface in org.apache.poi.ss.formula.udf">UDFFinder</a>&nbsp;udfFinder)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/poi/ss/formula/eval/ValueEval.html" title="interface in org.apache.poi.ss.formula.eval">ValueEval</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/poi/ss/formula/eval/forked/ForkedEvaluator.html#evaluate(java.lang.String, int, int)">evaluate</a></strong>(java.lang.String&nbsp;sheetName,
        int&nbsp;rowIndex,
        int&nbsp;columnIndex)</code>
<div class="block">If cell contains a formula, the formula is evaluated and returned,
 else the CellValue simply copies the appropriate cell value from
 the cell and also its cell type.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/poi/ss/formula/eval/forked/ForkedEvaluator.html#setupEnvironment(java.lang.String[], org.apache.poi.ss.formula.eval.forked.ForkedEvaluator[])">setupEnvironment</a></strong>(java.lang.String[]&nbsp;workbookNames,
                <a href="../../../../../../../org/apache/poi/ss/formula/eval/forked/ForkedEvaluator.html" title="class in org.apache.poi.ss.formula.eval.forked">ForkedEvaluator</a>[]&nbsp;evaluators)</code>
<div class="block">Coordinates several formula evaluators together so that formulas that involve external
 references can be evaluated.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/poi/ss/formula/eval/forked/ForkedEvaluator.html#updateCell(java.lang.String, int, int, org.apache.poi.ss.formula.eval.ValueEval)">updateCell</a></strong>(java.lang.String&nbsp;sheetName,
          int&nbsp;rowIndex,
          int&nbsp;columnIndex,
          <a href="../../../../../../../org/apache/poi/ss/formula/eval/ValueEval.html" title="interface in org.apache.poi.ss.formula.eval">ValueEval</a>&nbsp;value)</code>
<div class="block">Sets the specified cell to the supplied <tt>value</tt></div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="create(org.apache.poi.ss.usermodel.Workbook, org.apache.poi.ss.formula.IStabilityClassifier)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>create</h4>
<pre>public static&nbsp;<a href="../../../../../../../org/apache/poi/ss/formula/eval/forked/ForkedEvaluator.html" title="class in org.apache.poi.ss.formula.eval.forked">ForkedEvaluator</a>&nbsp;create(<a href="../../../../../../../org/apache/poi/ss/usermodel/Workbook.html" title="interface in org.apache.poi.ss.usermodel">Workbook</a>&nbsp;wb,
                     <a href="../../../../../../../org/apache/poi/ss/formula/IStabilityClassifier.html" title="interface in org.apache.poi.ss.formula">IStabilityClassifier</a>&nbsp;stabilityClassifier)</pre>
<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>(Sep 2009) (reduce overloading) use <a href="../../../../../../../org/apache/poi/ss/formula/eval/forked/ForkedEvaluator.html#create(org.apache.poi.ss.usermodel.Workbook, org.apache.poi.ss.formula.IStabilityClassifier, org.apache.poi.ss.formula.udf.UDFFinder)"><code>create(Workbook, IStabilityClassifier, UDFFinder)</code></a></i></div>
</li>
</ul>
<a name="create(org.apache.poi.ss.usermodel.Workbook, org.apache.poi.ss.formula.IStabilityClassifier, org.apache.poi.ss.formula.udf.UDFFinder)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>create</h4>
<pre>public static&nbsp;<a href="../../../../../../../org/apache/poi/ss/formula/eval/forked/ForkedEvaluator.html" title="class in org.apache.poi.ss.formula.eval.forked">ForkedEvaluator</a>&nbsp;create(<a href="../../../../../../../org/apache/poi/ss/usermodel/Workbook.html" title="interface in org.apache.poi.ss.usermodel">Workbook</a>&nbsp;wb,
                     <a href="../../../../../../../org/apache/poi/ss/formula/IStabilityClassifier.html" title="interface in org.apache.poi.ss.formula">IStabilityClassifier</a>&nbsp;stabilityClassifier,
                     <a href="../../../../../../../org/apache/poi/ss/formula/udf/UDFFinder.html" title="interface in org.apache.poi.ss.formula.udf">UDFFinder</a>&nbsp;udfFinder)</pre>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>udfFinder</code> - pass <code>null</code> for default (AnalysisToolPak only)</dd></dl>
</li>
</ul>
<a name="updateCell(java.lang.String, int, int, org.apache.poi.ss.formula.eval.ValueEval)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updateCell</h4>
<pre>public&nbsp;void&nbsp;updateCell(java.lang.String&nbsp;sheetName,
              int&nbsp;rowIndex,
              int&nbsp;columnIndex,
              <a href="../../../../../../../org/apache/poi/ss/formula/eval/ValueEval.html" title="interface in org.apache.poi.ss.formula.eval">ValueEval</a>&nbsp;value)</pre>
<div class="block">Sets the specified cell to the supplied <tt>value</tt></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>sheetName</code> - the name of the sheet containing the cell</dd><dd><code>rowIndex</code> - zero based</dd><dd><code>columnIndex</code> - zero based</dd></dl>
</li>
</ul>
<a name="copyUpdatedCells(org.apache.poi.ss.usermodel.Workbook)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>copyUpdatedCells</h4>
<pre>public&nbsp;void&nbsp;copyUpdatedCells(<a href="../../../../../../../org/apache/poi/ss/usermodel/Workbook.html" title="interface in org.apache.poi.ss.usermodel">Workbook</a>&nbsp;workbook)</pre>
<div class="block">Copies the values of all updated cells (modified by calls to <a href="../../../../../../../org/apache/poi/ss/formula/eval/forked/ForkedEvaluator.html#updateCell(java.lang.String, int, int, org.apache.poi.ss.formula.eval.ValueEval)"><code>updateCell(String, int, int, ValueEval)</code></a>) to the supplied <tt>workbook</tt>.<br/>
 Typically, the supplied <tt>workbook</tt> is a writable copy of the 'master workbook',
 but at the very least it must contain sheets with the same names.</div>
</li>
</ul>
<a name="evaluate(java.lang.String, int, int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>evaluate</h4>
<pre>public&nbsp;<a href="../../../../../../../org/apache/poi/ss/formula/eval/ValueEval.html" title="interface in org.apache.poi.ss.formula.eval">ValueEval</a>&nbsp;evaluate(java.lang.String&nbsp;sheetName,
                 int&nbsp;rowIndex,
                 int&nbsp;columnIndex)</pre>
<div class="block">If cell contains a formula, the formula is evaluated and returned,
 else the CellValue simply copies the appropriate cell value from
 the cell and also its cell type. This method should be preferred over
 evaluateInCell() when the call should not modify the contents of the
 original cell.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>sheetName</code> - the name of the sheet containing the cell</dd><dd><code>rowIndex</code> - zero based</dd><dd><code>columnIndex</code> - zero based</dd>
<dt><span class="strong">Returns:</span></dt><dd><code>null</code> if the supplied cell is <code>null</code> or blank</dd></dl>
</li>
</ul>
<a name="setupEnvironment(java.lang.String[], org.apache.poi.ss.formula.eval.forked.ForkedEvaluator[])">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>setupEnvironment</h4>
<pre>public static&nbsp;void&nbsp;setupEnvironment(java.lang.String[]&nbsp;workbookNames,
                    <a href="../../../../../../../org/apache/poi/ss/formula/eval/forked/ForkedEvaluator.html" title="class in org.apache.poi.ss.formula.eval.forked">ForkedEvaluator</a>[]&nbsp;evaluators)</pre>
<div class="block">Coordinates several formula evaluators together so that formulas that involve external
 references can be evaluated.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>workbookNames</code> - the simple file names used to identify the workbooks in formulas
 with external links (for example "MyData.xls" as used in a formula "[MyData.xls]Sheet1!A1")</dd><dd><code>evaluators</code> - all evaluators for the full set of workbooks required by the formulas.</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ForkedEvaluator.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>PREV CLASS</li>
<li>NEXT CLASS</li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../index.html?org/apache/poi/ss/formula/eval/forked/ForkedEvaluator.html" target="_top">FRAMES</a></li>
<li><a href="ForkedEvaluator.html" target="_top">NO FRAMES</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>SUMMARY:&nbsp;</li>
<li>NESTED&nbsp;|&nbsp;</li>
<li>FIELD&nbsp;|&nbsp;</li>
<li>CONSTR&nbsp;|&nbsp;</li>
<li><a href="#method_summary">METHOD</a></li>
</ul>
<ul class="subNavList">
<li>DETAIL:&nbsp;</li>
<li>FIELD&nbsp;|&nbsp;</li>
<li>CONSTR&nbsp;|&nbsp;</li>
<li><a href="#method_detail">METHOD</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>
                <i>Copyright 2014 The Apache Software Foundation or
        its licensors, as applicable.</i>
            </small></p>
</body>
</html>
